#pragma once
#include <iostream>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
class InetAddr{
    private:
        void ToHost(const struct sockaddr_in& addr) //转换成本机端口号、ip
        {
            _port = ntohs(addr.sin_port);
            _ip = inet_ntoa(addr.sin_addr);
        }
    public:
        InetAddr(const struct sockaddr_in& addr)
        :_addr(addr)
        {
            ToHost(addr);
        }
        uint16_t Port() //返回转换完的本机端口号
        {
            return _port;
        }
        std::string Ip() //返回转换完的本机ip地址
        {
            return _ip;
        }
        ~InetAddr()
        {

        }
    private:
        uint16_t _port; //存储转换完的本机16位的端口号
        std::string _ip; //存储转换完的本机字符串形式ip
        struct sockaddr_in _addr; //存储源信息
};